home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1996 April / Macworld (1996-04).dmg / Shareware World / Entertainment / General / Xconq 7.0.1 / lib / beirut.g < prev    next >
Text File  |  1995-08-22  |  6KB  |  254 lines

  1. (game-module "beirut"
  2.   (title "Beirut 1982")
  3.   (blurb "The heroic fighters of Beirut")
  4.   (variants
  5.    (see-all true)
  6.    )
  7.   )
  8.  
  9. ; buildings should be able to be indep after revolt
  10. ; death squads should be as fast as leaders and shouldn't retreat
  11. ; and should be able to take over buildings.
  12. ; no capturing if leader if they are win/lose condition.
  13.  
  14. (unit-type militia (char "m") (image-name "soldiers")
  15.   (help "hide and fight from building to building"))
  16. (unit-type |death squad| (char "d") (image-name "45")
  17.   (help "hit people and not buildings"))
  18. (unit-type leader (char "L") (image-name "man")
  19.   (help "an individual, one for each side"))
  20. (unit-type |car bomb| (char "C") (image-name "auto")
  21.   (help "destroys buildings and all else in the vicinity"))
  22. (unit-type tank (char "T") (image-name "tank")
  23.   (help "also destroys buildings and other things"))
  24. (unit-type building (char "B") (image-name "city20")
  25.   (help "good for hiding out"))
  26.  
  27. ; hostages material type?
  28.  
  29. (terrain-type sea (char ".") (color "sky blue"))
  30. (terrain-type beach (char ",") (color "yellow"))
  31. (terrain-type street (char "+") (color "light gray"))
  32. (terrain-type junkheap (char "^") (color "sienna"))
  33. (terrain-type fields (char "=") (color "green"))
  34. (terrain-type trees (char "%") (color "forest green"))
  35.  
  36. (define m militia)
  37. (define d |death squad|)
  38. (define l leader)
  39. (define c |car bomb|)
  40. (define t tank)
  41. (define B building)
  42.  
  43. (define movers ( m d l c t ))
  44. (define vehicles ( c t ))
  45. (define water ( sea ))
  46. (define land ( beach street junkheap fields trees ))
  47.  
  48. ;;; Static relationships.
  49.  
  50. (add B capacity 2)
  51.  
  52. (table unit-size-as-occupant
  53.   (u* u* 99)
  54.   ((m d l) B 1)
  55.   )
  56.  
  57. ;;; Vision.
  58.  
  59. ;FIXME visibility is U T -> N, U's % visibility in T
  60. (table visibility add (d t* 0))
  61.  
  62. (add B see-always 1)
  63.  
  64. (set terrain-seen true)
  65.  
  66. ;;; Actions.
  67.  
  68. (add movers acp-per-turn ( 1 1 2 3 3 ))
  69.  
  70. ;;; Movement.
  71.  
  72. (add B speed 0)
  73.  
  74. (table mp-to-enter-terrain
  75.   (u* t* 99)
  76.   (( m d l ) land 1)
  77.   (vehicles ( beach street ) 1)
  78.   )
  79.  
  80. ;;; Combat.
  81.  
  82. (add u* hp-max ( 1 1 1 1 2 10 ))
  83.  
  84. (table hit-chance
  85.   (m u* ( 50 50 50 50 50 50 ))
  86.   (d u* (  5 50 70 20 20  0 ))
  87.   (l u* (  0 20 50  0 20  0 ))
  88. ;  (c u* ( 90 90 90 90 90 90 ))
  89.   (t u* ( 90 90 90 90 90 90 ))
  90.   (B u* ( 10 10 10 10  0  0 ))
  91.   )
  92.  
  93. (table damage
  94.   (u* u* 1)
  95. ;  (c ( t B ) ( 2 10 ))
  96.   )
  97.  
  98. (table capture-chance
  99.   (m B 100)
  100.   (m c 100)
  101.   (m l 50)
  102.   (m t 50)
  103.   )
  104.  
  105. (table withdraw-chance-per-attack
  106.   (u* m 20)
  107.   (u* d 80)
  108.   (u* l 95)
  109.   )
  110.  
  111. (table protection
  112.   (B ( m d ) 50)
  113.   (m B 10)
  114.   )
  115.  
  116. (add c acp-to-detonate 1)
  117.  
  118. (add c hp-per-detonation 1)
  119.  
  120. (table detonation-unit-range (c u* 2))
  121.  
  122. (table detonation-damage-at (c u* 10))
  123.  
  124. (table detonation-damage-adjacent (c u* 8))
  125.  
  126. (table detonate-on-hit (c u* (50 50 50 100 100 100)))
  127.  
  128. (table detonate-on-capture (c u* 30))
  129.  
  130. (table detonation-accident-chance (c t* 10))
  131.  
  132. ;;; Random events.
  133.  
  134. ;(set random-events (units-revolt))
  135.  
  136. (add B revolt-chance 100)
  137.  
  138. ;;; Scoring.
  139.  
  140. (scorekeeper (do last-side-wins))
  141.  
  142. (add l point-value 10)
  143. (add B point-value 1)
  144.  
  145. ;;; Setup.
  146.  
  147. (add u* start-with ( 5 1 1 5 2 1 ))
  148.  
  149. (table independent-density (B junkheap 9000))
  150.  
  151. (table favored-terrain
  152.   (u* t* 0)
  153.   (movers street 100)
  154.   (B junkheap 100)
  155.   )
  156.  
  157. (set country-radius-min 6)
  158. (set country-separation-min 4)
  159. (set country-separation-max 10)
  160.  
  161. (add street country-terrain-min 15)
  162. (add junkheap country-terrain-min 1)
  163.  
  164. ;; Don't let this go on forever.
  165.  
  166. (set last-turn 200)
  167.  
  168. (side 1 (name "Maronite")
  169.   )
  170. (side 2 (name "Amal")
  171.   )
  172. (side 3 (name "Hezbollah")
  173.   )
  174. (side 4 (name "Druze")
  175.   )
  176. (side 5 (name "Syrian")
  177.   )
  178. (side 6 (name "Israeli")
  179.   )
  180. (side 7 (name "PLO")
  181.   )
  182.  
  183. (set sides-min 7)
  184. (set sides-max 7)
  185.  
  186. (world 100000)
  187.  
  188. (area 72 42)
  189.  
  190. (area (terrain
  191.   (by-name
  192.     (sea 0) (beach 1) (street 2) (junkheap 3) (fields 4)
  193.     (trees 5))
  194.   "72a"
  195.   "72a"
  196.   "72a"
  197.   "15ab3d6b4a2bc2dc2dbd4bc2dc2dc4bc17a"
  198.   "9abc5bc4d2c2dc2d4c2dc2dc2dc2dc2dc2dc2dc2dc16a"
  199.   "8a2b3c3dc2d3cd6c3d6c3d16c15a"
  200.   "7ab2dc2dc2d4cdc3dc2dc3dedc2dcd3cdc2dc2dc2dc2dcdc14a"
  201.   "7ab2dc2d2cdc2dc2dc2dc2dc3dedc2dcdc3dc2dc2dc2dcdfc2dc13a"
  202.   "7ab3c2dcd2c2d14ce10c2d11cd2c12a"
  203.   "7ab2dc2dc2dc2dc2dcdc3dcf2c2df2dc2dc2dc2dc2dc2dc2dcd2cde11a"
  204.   "7ab3d10cdc2dc2dc2dc2de2dc2dc2dc2dc2dc3dcdc2dcdfe10a"
  205.   "8ab3c3dc3dcd5c2d7cf7cd8cdc2d4cf2e9a"
  206.   "8ab3dc2dc3dc2dc2dc2dc2dc2dcfdcdc3dc2dcdc3d2c4dcdcd2e8a"
  207.   "9a4dcd5c2dc2d4c2dc2dcfdc2dc2dc2dc2dc2dc2dc2dcfd4e7a"
  208.   "9ab2cd4c2d7c2d8cd2c2dcd6cd11cefefc6a"
  209.   "10abd2c2dc2dc2dcd2c2dc2dc2dc2dedcdcdc5dc5dc2dcfdcde2ce5a"
  210.   "10abdcd3c2dc2dc2dc2dc2dc2dc2de2d2cdc2dc2dc2df2dc2dc2dcefcfde4a"
  211.   "11abcdcd14c2d6cedcd11cd3cd4c2ecf3e3a"
  212.   "11abd2cdc2dc2dcdc3dcd4c3dcdec2dc2dc2dc2dcdc2d2c2dcdecd4e2a"
  213.   "12abdc2dcdc2dc2dc2dc5dc2dcdfc2dc2dc3dcdc2dc2dc2dc2dcf2ef2ea"
  214.   "13ab16c4d6cf8c2d14c3efefe"
  215.   "13adcdc2dc2dc2dcdc2dc2d2cdc3df2dc2dc2dc2dc2dc2dcdcdfdcdf2ef2e"
  216.   "14adcdcdc2dcd2c2dc2dcdc2dc3dc2dc3dcdc2dcd2c2dc2dc2dc7e"
  217.   "15abcd4c2dcd16ce3cdc2d3cdc2d8cd2fef2e"
  218.   "16adcdc2dcdc3dc2dcdc3dc2dc2de2dc2dc2dc2dc2dcdc3dcdf5e"
  219.   "17ab2c2dc2dc3dcdc2dc2dc2dc3dedc2d2cfc2dcd2c2dc2dcd3ef2e"
  220.   "18ab13c2d4c2d10cd7cdcdcd4c5e"
  221.   "19a3dc2dc5dc2dcdc3dc2dcdec2dc5dc2dc2dc2dc2dcfd2e"
  222.   "20a2dc3d2c3dcd2c2dc2dc2dcdfc2dc2dc2dcd2c2dc2dc2d3cfe"
  223.   "22ad2b2cd2cd3c3d8cf10cdcdcd7cfece"
  224.   "25a2b3d2c2d2cdcdc3dcd2c2dc2dc2dcdc2d2c2dc2dcd2ec"
  225.   "27a2b2dc2dcd2c2dc3dcdcedc2dc2dcdc3dc2dc2dc2def"
  226.   "30a3cdc2d8cd2cf4c2dc2d2cd10ce"
  227.   "31abd2c2dc2dc5dc2df2dc3dc3d2c2dc2dc2dce"
  228.   "32abdc3dcdc5dc2dc2dc2d3c3dc2dc2dc3dc"
  229.   "34a7c2d2cd4cf5c2d14c"
  230.   "35a2dc2dc2dcd2cd2cdfc2dc2dc5dc2dc3dc"
  231.   "36adc2dc2dcdcdcdc2de2dc2dc5dc2dc3dc"
  232.   "37ab8c2d4ce14cd4c"
  233.   "37ab2dc2dc2dc2dc2dcedc2dc2dc2dc2dc3dc"
  234.   "38a2dc2dc2dc2dc2dc2dc2dc2dc2dc2dc3dc"
  235.   "38a34c"
  236. ))
  237.  
  238. ;;; Documentation.
  239.  
  240. (game-module (instructions (
  241.   )))
  242.  
  243. (game-module (design-notes (
  244. "Actually, this includes only a subset of the actual participants.
  245. They all fight each other here; there should actually be some alliances."
  246.   )))
  247.  
  248. (game-module (notes (
  249.   "Relive the heroic struggles of the heroic factions fighting for"
  250.   "the just and righteous cause of control of Beirut."
  251.   ""
  252.   "Try not to destroy too much of the city in the process."
  253.   )))
  254.